package com.andy.qhb.heepay;
import java.text.SimpleDateFormat;
import java.util.Date;

/*备注
 * 汇付宝平台使用的gb2312编码
 * 如果商户平台使用的urf-8编码，商户需要转码传给汇付宝平台
 * 例如：URLEncoder.encode("文档", "gb2312"));
 * 此demo只给商户提供参数组织的过程，业务实现并没有。因此需要商户对实际应用进行实际的处理
 * 
 */

public class SubmitOrder {
	public static void main(String[] args) throws Exception {
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式
		String time = df.format(new Date());
		String agent_id = "1664502";             //商户编号 如1001  替换商户的商户号
		String version = "1";                   //当前接口版本号
	    String pay_type = "30";                 //微信支付
	   
	   
	    String agent_bill_id = "A" + time + "I";//商户系统内部的定单号（要保证唯一）。长度最长50字符
	    String pay_amt = "0.1";				//订单总金额 不可为空，取值范围（0.1到10000000.00），单位：元，小数点后保留两位。
	    String notify_url = "http://www.heepay.com";					//支付后返回的商户处理页面，URL参数是以http://或https://开头的完整URL地址(后台处理) 提交的url地址必须外网能访问到,否则无法通知商户。值可以为空，但不可以为null。
	    String return_url = "http://www.heepay.com";					//支付后返回的商户显示页面，URL参数是以http:// 或https://开头的完整URL地址(前台显示)，原则上：该参数与notify_url提交的参数不一致。值可以为空，但不可以为null。
	    String user_ip = "27_154_27_202";		//用户所在客户端的真实ip其中的“.”替换为“_” 。如 127_127_12_12。因为近期我司发现用户在提交数据时，user_ip在网络层被篡改，导致签名错误，所以我们规定使用这种格式。
	    String agent_bill_time = time;			//提交单据的时间yyyyMMddHHmmss 如：20100225102000该参数共计14位，当时不满14位时，在后面加0补足14位
	    String goods_name = "商品名称";			//商品名称, 长度最长50字符，不能为空（不参加签名）
	    String goods_num = "1";					//产品数量,长度最长20字符（不参加签名）
	    String remark = "标识";					//商户自定义 原样返回,长度最长50字符，可以为空。（不参加签名）
	    String goods_note = "支付说明"; 			//支付说明, 长度50字符（不参加签名）
	    
	    GatewayModel gatewayModel = new GatewayModel();
	    gatewayModel.setagent_id(agent_id);
	    gatewayModel.setversion(version);
	    gatewayModel.setpay_type(pay_type);
	    gatewayModel.setagent_bill_id(agent_bill_id);
	    gatewayModel.setpay_amt(pay_amt);
	    gatewayModel.setnotify_url(notify_url);
	    gatewayModel.setreturn_url(return_url);
	    gatewayModel.setuser_ip(user_ip);
	    gatewayModel.setagent_bill_time(agent_bill_time);
	    gatewayModel.setgoods_name(goods_name);
	    gatewayModel.setgoods_num(goods_num);
	    gatewayModel.setremark(remark);
	    gatewayModel.setgoods_note(goods_note);
	    
	    
	    HeepaySubmit heepaySubmit = new HeepaySubmit();
	    SubmitReturn submitReturn = new SubmitReturn();
	    
	    submitReturn = heepaySubmit.SubmitUrl(gatewayModel);//提交组织url参数
	    if(submitReturn.is_success())
	    {
	    	System.out.println(submitReturn.get_error_message());//出现错误打印出错误信息
	    }
	    else
	    {
	    	//这里代表组织提交的汇付宝收银台url。商户可以使用此地址在浏览器中访问进行测试
	    	System.out.println(submitReturn.get_error_message());
	    }
	    
	   
		
	}
}